package com.dys.testio02;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
 * @className: src.main.java.com.dys.testio02.FileReader2Test
 * @description: src.main.java.com.dys.testio02
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/14 下午10:01
 */
public class FileReader2Test {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws IOException {
        // 1.有一个文件-->创建一个File类的对象
        File f1 = new File("E:/test1.txt");
        // 2.利用FileReader这个流，这个“管”怼到源文件上去   ---》创建一个FileReader的流的对象
        FileReader fr = new FileReader(f1);
        // 3.读取动作
        // 引入一个“快递员的小车”，这个“小车”一次拉5个快递：
        char[] ch = new char[5];// 缓冲数组
        // 一次读取5个：返回值是这个数组中的有效长度
        int len = fr.read(ch);
        while (len != -1) {
            // System.out.print(len);
            // 错误方式
            // for (int i = 0; i < ch.length; i++) {
            //     System.out.println(ch[i]);
            // }
            // len = fr.read(ch);

            // 正确方式1
            // for (int i = 0; i < len; i++) {
            //     System.out.println(ch[i]);
            // }
            // len = fr.read(ch);

            // 正确方式2：将数组转为字符串
            String str = new String(ch, 0, len);
            System.out.print(str);
            len = fr.read(ch);
        }
        // 4.关闭流
        fr.close();
    }
}
